home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / smtp_relay2.nasl < prev    next >
Text File  |  2005-03-31  |  5KB  |  183 lines

  1. #
  2. # This script was written by Michel Arboi <arboi@alussinan.org>
  3. # starting from the relay test service (telnet relay-test.mail-abuse.org)
  4. #
  5. # GNU Public Licence
  6. #
  7. # References
  8. # Date: Mon, 25 Aug 2003 05:38:53 -0700
  9. # From: "st0ff st0ff" <if0ff@YAHOO.COM>
  10. # Subject: Can NT4 SMTP Service be misused for mail spamming
  11. # To: NTBUGTRAQ@LISTSERV.NTBUGTRAQ.COM
  12. #
  13. # Date:     Fri, 19 Sep 2003 16:47:45 +0200
  14. # De:    eric@LIEGE.COM
  15. # Subject:    Re: Can NT4 SMTP Service be misused for mail spamming
  16. # To:    NTBUGTRAQ@LISTSERV.NTBUGTRAQ.COM
  17. #
  18.  
  19. if(description)
  20. {
  21.  script_id(11852);
  22.  script_version ("$Revision: 1.9 $");
  23.  name["english"] = "Mail relaying (thorough test)";
  24.  script_name(english:name["english"]);
  25.  
  26.  desc["english"] = "
  27. The remote SMTP server is insufficiently protected against relaying
  28. This means that spammers might be able to use your mail server 
  29. to send their mails to the world.
  30.  
  31. Risk factor : Low / Medium
  32.  
  33. Solution : upgrade your software or improve the configuration so that 
  34. your SMTP server cannot be used as a relay any more.";
  35.  
  36.  script_description(english:desc["english"]);
  37.  summary["english"] = "Tries misc invalid tricks to circumvent anti-relay functions"; 
  38.  script_summary(english:summary["english"]);
  39.  
  40.  script_category(ACT_GATHER_INFO);
  41.  
  42.  script_copyright(english:"This script is Copyright (C) 2003 Michel Arboi");
  43.  
  44.  family["english"] = "SMTP problems";
  45.  family["francais"] = "ProblΦmes SMTP";
  46.  script_family(english:family["english"], francais:family["francais"]);
  47.  script_dependencie("find_service.nes", "sendmail_expn.nasl",
  48.     "smtp_relay.nasl", "smtp_settings.nasl");
  49.  script_exclude_keys("SMTP/wrapped", "SMTP/qmail", "SMTP/spam");
  50.  script_require_ports("Services/smtp", 25);
  51.  exit(0);
  52. }
  53.  
  54. #
  55.  
  56. include("smtp_func.inc");
  57. include("misc_func.inc");
  58.  
  59. # can't perform this test on localhost
  60. if(islocalhost())exit(0);
  61.  
  62. port = get_kb_item("Services/smtp");
  63. if (!port) port = 25;
  64. if (! get_port_state(port)) exit(0);
  65.  
  66. # No use to try "advanced" tests if it is a wide open relay
  67. if (get_kb_item("SMTP/" + port + "/spam")) exit(0);
  68.  
  69. domain = get_kb_item("Settings/third_party_domain");
  70. if (! domain) domain = 'example.com';
  71.  
  72. soc = smtp_open(port: port, helo: NULL);
  73. if (! soc) exit(0);
  74.  
  75. dest_name = get_host_name();
  76. dest_ip = get_host_ip();
  77. dest_name = get_host_name();
  78. src_name = this_host_name();
  79.  
  80. t1 = strcat('nobody@', domain);
  81. f1 = strcat('nessus@', dest_name);
  82. f2 = strcat('nessus@[', dest_ip, ']');
  83.  
  84. i= 0;
  85. from_l[i] = strcat("nobody@", domain);
  86. to_l[i] = t1;
  87. i ++;
  88. from_l[i] = strcat("nessus@", rand_str(), ".", domain);
  89. to_l[i] = t1;
  90. i ++;
  91. from_l[i] = "nessus@localhost";
  92. to_l[i] = t1;
  93. i ++;
  94. from_l[i] = "nessus";
  95. to_l[i] = t1;
  96. i ++;
  97. from_l[i] = "";
  98. to_l[i] = t1;
  99. i ++;
  100. from_l[i] = "";
  101. to_l[i] = t1;
  102. i ++;
  103. from_l[i] = strcat("nessus@", dest_name);
  104. to_l[i] = t1;
  105. i ++;
  106. from_l[i] = strcat("nessus@[", dest_ip, "]");
  107. to_l[i] = t1;
  108. i ++;
  109. from_l[i] = strcat("nessus@", dest_name);
  110. to_l[i] = strcat("nobody%", domain, "@", dest_name);
  111. i ++;
  112. from_l[i] = strcat("nessus@", dest_name);
  113. to_l[i] = strcat("nobody%", domain, "@[", dest_ip, "]");
  114. i ++;
  115. from_l[i] = strcat("nessus@", dest_name);
  116. to_l[i] = strcat('nobody@', domain, '@', dest_name);
  117. i ++;
  118. from_l[i] = strcat("nessus@", dest_name);
  119. to_l[i] = strcat('"nobody@', domain, '"@[', dest_ip, ']');
  120. i ++;
  121. from_l[i] = f1;
  122. to_l[i] = strcat('nobody@', domain, '@[', dest_ip, ']');
  123. i ++;
  124. from_l[i] = f2;
  125. to_l[i] = strcat('@', dest_name, ':nobody@', domain);
  126. i ++;
  127. from_l[i] = f1;
  128. to_l[i] = strcat('@[', dest_ip, ']:nobody@', domain);
  129. i ++;
  130. from_l[i] = f1;
  131. to_l[i] = strcat(domain, '!nobody@[', dest_ip, ']');
  132. i ++;
  133. from_l[i] = strcat('postmaster@', dest_name);
  134. to_l[i] = t1;
  135. i ++;
  136.  
  137. rep = '';
  138. send(socket: soc, data: strcat('HELO ', src_name, '\r\n'));
  139. smtp_recv_line(socket: soc);
  140. for (i = 0; soc && (from_l[i] || to_l[i]); i ++)
  141. {
  142.   mf = strcat('MAIL FROM: <', from_l[i], '>\r\n');
  143.   send(socket: soc, data: mf);
  144.   l = smtp_recv_line(socket: soc);
  145.   if (! l || l =~ '^5[0-9][0-9]')
  146.   {
  147.     smtp_close(socket: soc);
  148.     soc = smtp_open(port: port, helo: domain);
  149.   }
  150.   else
  151.   {
  152.     rt = strcat('RCPT TO: <', to_l[i], '>\r\n');
  153.     send(socket: soc, data: rt);
  154.     l = smtp_recv_line(socket: soc);
  155.     if (l =~ '^2[0-9][0-9]')
  156.     {
  157.       mf -= '\r\n'; rt -= '\r\n';
  158.       rep = strcat(rep, '\t', mf, '\n\t', rt, '\n\n');
  159.       break;
  160.     }
  161.     
  162.     smtp_close(socket: soc);
  163.     soc = smtp_open(port: port, helo: NULL);
  164.    }
  165. }
  166.  
  167. if (rep)
  168. {
  169.   report = strcat("
  170. The remote SMTP server is insufficiently protected against relaying
  171. This means that spammers might be able to use your mail server 
  172. to send their mails to the world.
  173.  
  174. Nessus was able to relay mails by sending those sequences:
  175.  
  176. ", 
  177.     rep, "Risk factor : Medium
  178.  
  179. Solution : upgrade your software or improve the configuration so that
  180.     your SMTP server cannot be used as a relay any more.");
  181.   security_warning(port: port, data: report);
  182. }
  183.